Il faudrait appliquer la logique booléenne pour inverser le ET en OU de la négation de chaque terme individuellement :
collection.find({$or: [{age: {$gte: maxAge}}, {gender: {$ne: 'female'}}]})
ou
collection.find({$or: [{age: {$not: {$lt: maxAge}}}, {gender: {$ne: 'female'}}]})