What is the magic the JQL thing is looking for? IS EMPTY returns differently to = 0
Also it is possible to smash all 'remaining' estimates to zero when a task is closed?
The first question regarding the issues in progress with no time estimate is:
status = "In Progress" and remainingEstimate is empty
When you use remainingEstimate = 0, it means that it has been set, either that it has had a value before and been set to 0, or that it has been explicitly set to 0. Is Empty means that the value has not been set.
You can add a post-function for the transition to the "closed" status in the workflow and then select "Update Issue Field". Select Remaining Estimate and set the value to 0.