There are several reasons that if your facetted search is very open, more like a network of combined selections, that you should leave empty filters visible.
You are better off disabling the filters so the interface retains consistency throughout the interaction. If there are always the same set of filters then the user can learn the interface more quickly and navigate it faster. If the option set is constantly changing as things are added and removed then there will never be a consitent set of filters. Repeat customers will appreciate this sort of consistency.
Empty filters still impart information
Just because there are no results right now for a particular filter doesn't mean the user gets no information from that filter being visible. They may notice it is off an realise that actually they need it on so unclick something they already clicked in order to reactivate it.
For example, I like Brand X, so I click the Brand X filter, but then Brand X don't have any golden widgets right now, so I decide I'll just look at golden widgets. If the golden widgets filter is not there, clearly displaying its lack of results, it's harder for me to deduce that that is the case.
Hiding a clicked option
You also need to consider what to do if a user creates a set of conditions that result in a clicked option being hidden. Say I like Brands X and Y, so I click them. I see golden widgets, so I click that too, resulting in one of the brands returning no results. I still need the interface to communicate to me that that brand is still clicked and that there are no results. Removing it entirely as a result of a click elsewhere on the screen is not a good interaction path.
The current pattern used in many big sites is to leave the filters in place, grey them out if they return no results and sometimes using scroll boxes (ASOS) or popups (ebay) to allow the whole list of options to appear (I suspect that is a problem you are encountering for which the solution may have appeared to have been removing filter options entirely).
Another thing to consider is to provide a count for results, letting the user know how rich a result set is before clicking on the button and triggering a possibly quite heavy query.
Some further reading ...