Ваш запрос проверяет, имеет ли meta_key (и meta_value) 2 разных значения в одной строке, что невозможно.Но я вижу, что вы пытаетесь сделать ..
Попробуйте дважды присоединиться к таблице wp_postmeta, за исключением каждой с предложением ON, которое исключает все строки, кроме тех, которые удовлетворяют условию meta_key:
SELECT
p.*,
GROUP_CONCAT(CONCAT(pm.meta_key,':',pm.meta_value) SEPARATOR ',') AS meta_values
FROM
wp_posts p
JOIN wp_postmeta pm ON pm.post_id = p.ID
JOIN wp_postmeta pm_bi ON (pm_bi.post_id = p.ID AND pm_bi.meta_key = 'ulnooweg_business_industry')
JOIN wp_postmeta pm_bp ON (pm_bp.post_id = p.ID AND pm_bp.meta_key = 'ulnooweg_business_province')
WHERE
pm_bi.meta_value = 'Legal Services'
AND pm_bp.meta_value = 'New Brunswick'
AND p.post_type = 'business'
AND p.post_status = 'publish'
GROUP BY p.ID
ORDER BY p.post_title ASC
Примечание: я присоединился к таблице wp_postmeta 3 раза, чтобы доказать, что условия выполнены, но вы можете удалить строку GROUP_CONCAT (и, конечно же, запятую на предыдущей строке) и первый JOIN к wp_postmeta, и запрос будет работать так же.