You can use the data-driven subscriptions for this. If your email list for the subscription does not return any results, no reports will be sent.
So, you can create a data-driven subscription using something like:
IF EXISTS(SELECT * FROM MyData)
SELECT MyEmail, MyUserName FROM DistributionList
SELECT TOP 0 MyEmail, MyUserName FROM DistributionList
This will prevent the subscription from running if the data is not ready. This is not event-driven, but if you want the reports to run every night only if there is data, this works well.