Why does a query on a sparse index perform much faster than a query on a partial index in MongoDB?
Turns out I created the partial index incorrectly.

If you want to speed up an $exists query, you need to add the partialFilterExpression option like so:

db.detection_events.createIndex({"thingToQueryOn": 1}, {partialFilterExpression: {thingToQueryOn: {$exists: true}}})

Note the lack of quotation marks in the second document