Not quite. A database change starts a timer, and when the timer fires (in a fraction of a second) the query is re-run on the database. If the new results are different from the last results, the listener is called.
(The timer is to keep the query from being run hundreds of times if many documents are changing at once, as can happen during a pull replication.)