Hello,
Blank (null-valued) fields shouldn't be a problem creating alternate keys - I'm pretty sure it's related to duplicates within the table.
I experienced a similar situation and in order to identify duplicate records I used the following approach:
1. I created a DB and exported the data from the table into it.
2. I run a query to identify duplicated emails.
3. Having duplicated emails through the dataverse interface I just found records and either deleted duplicates or updated emails to remove that constraint.
An alternate approach you can rely on is duplicates detection - create a duplicate detection rule by your email address and run the duplicates detection job. Go and fix the results of that job.
Once you have your duplicates cleaned up - you would be able to enable your alternate key.