Cuando no hay coincidencias, find() devuelve [] , mientras que findOne() devuelve null . Así que usa:
Model.find( {...}, function (err, results) {
if (err) { ... }
if (!results.length) {
// do stuff here
}
}
o:
Model.findOne( {...}, function (err, result) {
if (err) { ... }
if (!result) {
// do stuff here
}
}