You can't draw values for a value list from two tables. But I don't think that will be a problem here as there is a simpler way to do what you want.
Presumably, you have relationships like this:
Patients::__pkPatientID = EmailAddresses::_fkPatientID
Patients::__pkPatientID = PhoneNumbers::_fkPatientID
Of course, your field and table names are probably different. But the one to many relationships between Patients and the other two tables appear to be what you have here.
But here's a simple way to select a "preferred confirmation method":
Put a button in the portal row of both portals that you will click to select that one phone number or email address as the preferred method.
The script in the phone number portal would work like this:
Set Field [Patients::_fkPreferredContact ; PhoneNumbers::__pkPhoneNumberID ]
Set Field [Patients::PreferredContactType ; "Phone" ]
The script for the button in the email portal is nearly identical but set's the preferredcontacttype to "email".
Then you add two more Tutorial: What are Table Occurrences? of Phone and Email to your relationships and match fields like this:
Patients::_fkPreferredContact = PhoneNumbers|Preferred::__pkPhoneNumberID
Patients::_fkPreferredContact = EmailAddresses|Preferred::__pkEmailID
Note that "PhoneNumbers|Preferred" and "EmailAddresses|Preferred" are simply the names that I've given to two new table occurrences in Manage | Database | Relationships.
Then you can define a calculation field in Patients like this:
If ( PreferredContactType = "Phone" ; PhoneNumbers|Preferred::PhoneNumber ; EmailAddresses|Preferred::EmailAddress )
be sure to select "text" as the calculation field's result type.
PS. I normally put email addresses and PhoneNumbers all in one table to begin with and then this all get's a bit simpler to set up as I don't need the calculation field, only one script with one script step and just one added table occurrence to make this happen.