This is how we do it:

Instead of using "Display results of query", use "Display results of process".
Then make your process like this:
If COUNT YourBoName >0 Then
DISPLAY 'Name of your query'
Or you could use EXISTS :
If EXISTS YourBoName WHERE (YourBoName.Name CONTAINS 'John') Then
DISPLAY 'Name of your query'
If nothing is found, the content panel will be empty.
I think this method is awesome and we use it alot. It makes the start page really clean, and the important stuff will always be visible.