Você teria que aplicar a lógica booleana para inverter o AND em um OR da negação de cada termo individualmente:
collection.find({$or: [{age: {$gte: maxAge}}, {gender: {$ne: 'female'}}]})
ou
collection.find({$or: [{age: {$not: {$lt: maxAge}}}, {gender: {$ne: 'female'}}]})