My bad, Actually I thought survey being used in program was newer version of survey i.e survey 2.0 . If you did not get any record in mda participants then it means you are using older survey .
In that case I will suggest to create two different report . For Survey sent by program report should be created on 'AO Participant' .It will have all the data for survey sent by program .
For survey sent by CTA report can be created on survey participant as the record creation flow is different in older version .I agree for CTA survey , if customer will not atleast click on survey once record will not be created in 'survey participant' but as CTA survey is one to one communication that count should be quite low .
This limitation is removed in newer version of survey and 'survey participant' has all the data .