Se for exatamente
null
(em vez de não definido):db.states.find({"cities.name": null})
(mas, como javierfp aponta, ele também corresponde a documentos que não têm matriz de cidades, estou assumindo que sim).
Se for o caso de a propriedade não estar definida:
db.states.find({"cities.name": {"$exists": false}})
Eu testei o acima com uma coleção criada com essas duas inserções:
db.states.insert({"cities": [{name: "New York"}, {name: null}]})
db.states.insert({"cities": [{name: "Austin"}, {color: "blue"}]})
A primeira consulta encontra o primeiro estado, a segunda consulta encontra o segundo. Se você quiser encontrar os dois com uma consulta, você pode fazer um
$or
inquerir:db.states.find({"$or": [
{"cities.name": null},
{"cities.name": {"$exists": false}}
]})