Similar topic was discussed in the following.
SSRS report delivery issue
The solution I use is by running a query to check for data, if there is data, run dbo.AddEvent on the report server to trigger a subscription event. There is a process for SSRS that monitors an event table for detecting when to run a subscription. AddEvent sp inserts a record into the event table which causes SSRS to run the subscription event.
Paul's solution is similar except his is to trigger to the the subscription job itself.