Twoje bieżące zapytanie zasadniczo wykonuje INNER JOIN
ze względu na consultant_id = 5
na WHERE
klauzula. Wierzę, że naprawdę chcesz użyć:
SELECT *
FROM consultant_memberships m
LEFT OUTER JOIN consultant_memberships_list l
ON m.`id` = l.membership_id
AND l.consultant_id = 5
WHERE l.membership_id IS NULL;
Zobacz SQL Fiddle z wersją demonstracyjną