A match field cannot be empty for one thing. But with the above relationship, if you are on the record for a contact where the company ID_Fk is 3, you would see in your portal all existing company records except the company with an ID of 3--which is not what you want here.
Instead, set up this relationship--which you likely already have:
Companies::CompanyID_pk = Contacts::CompanyID_fk
Then go to a list or table view layout based on Companies, enter find mode, put an Asterisk into the Contacts::CompanyID_fk field, click the option to make this an omit find and then perform the find to get a list of all companies that do not have at least one related contact.
I didn't think your suggestion worked until I noticed there was a found set. I only had fields from the queried table on the layout. When I put fields from the layout's table context on the layout, I had the information I needed. Thanks so much!