прямо с $exists: true видимо ничего не получится.
Но можно попробовать извернуться несколькими способами:
1. Добавлять служебное поле, которое и индексировать. Это может еще и хорошо сказаться на размере индекса, особенно если a и b большие, то целицом их индексировать ради $exists расточительно.
2. Если a и b всегда одного типа, можно попробовать использовать такой запрос db.coll.find({'attrib.a': {'$type': 3}})
По крайней мере, если верить explain'у, то индекс он использует.