How can I create a workflow which sends the email to only those people who haven't responded to the survey, also if users don't respond, then should get a reminder email in 1 week?
I would suggest to implement this scenario with a custom solution reason being you cant check who hasnt reponded via OOTB workflows.
create a group of users in the sub site or site collection of which they will be attempting the survey.
you can either use CSOM or server site object model and see if there are any records with modified by field that matches one of the group users.
This all should be in a time job or windows scheduler for sending the email notifications.