Dovresti applicare la logica booleana per invertire l'AND in un OR della negazione di ogni termine individualmente:
collection.find({$or: [{age: {$gte: maxAge}}, {gender: {$ne: 'female'}}]})
o
collection.find({$or: [{age: {$not: {$lt: maxAge}}}, {gender: {$ne: 'female'}}]})