Your logic looks good. I tested this and it worked as expected. All events under No value for email domain had no email address.
Alternatively, you can try using regex in component substring settings. Use this expression .+@(.+) and output $1. That should do the same. Perhaps that will resolve your issue.
EDIT - Does your original dimension have persistence applied? If so, did you replicate that persistence for your derived field?