Your If function only refers to the Special Ed field of the first related record. If it is "Yes" you get all related records. If it is not "yes", you get no records. That's not what you want, but it's what you created with your calculation here.
You need to put the If function on the other side of the relationship.
Define a calculation field, cSpecEdMotherEmail, as:
If (Students::Special_Ed = "Yes" ; MOther_email_address )
Then modify your original calculation to be:
Substitute ( List ( Students_List_View::cSpecEdMotherEmail ) ; "¶" ; "," )