wow. Talk about many was to skin a cat. Some convoluted methods at that.
Just use a row count component, set the value to a variable, after your data flow, if value is zero, run script task and delete the file.
If you _really_ don't want to create the file, use a script component as a destination. Only create the file when you receive your first row.
I can't die, there are too many people who still have to meet me!
It's not a bug, SQL just misunderstood me!