This is a bug found in the 2019 September and 2019 October versions of Power BI Desktop and the same behavior was observed in the Service:
Despite the fact that the direction of the cross filter is set to single (as designed, from the one-side of the relationship to the many-side), the filtering is not behaving as an inner join like it used to, but the filtering is happening as a right join instead (i.e., all rows from the many-side of the relationship and only those rows that match from the one-side are returned). This happens even after changing the order of the tables while setting up the relationship which, as expected, shouldn't matter or even after changing the order of the fields in the visual.
The workaround is to set the filter on all pages to not include blank values from the table on the one-side of the relationship (left side of the join). Please note that these blank values are NOT in the table. They appear in the filter as an option once the relationship is created (right-join behavior).