Appearance of filters in layered navigation depends on setting for that attribute. When you edit a attribute from Catalog->Attributes->Manage Attribte, then you can see that under "Frontend Properties" there is a field "Use In Layered Navigation" with options
1. No=> Do not use in layered navigation
2. Filterable (with results) => display in layered navigation only if results are greater than 0(thats what you looking for)
3. Filterable (No results) => always display in layered navigation
And to display filter on search result page set "Use In Search Results Layered Navigation" field to yes