Я предполагаю, что вы хотите отфильтровать, где provider_order имеет значение null?
Я завернул весь ваш запрос как подзапрос и поместил предложение where в конце, возвращая только записи, в которых provider_order не равен нулю.
http://sqlfiddle.com/#!9/f77862/50/0
SELECT *
FROM (
SELECT m.provider_id,
m.provider_name,
p.purchase_order_code,
NULL AS purchase_order_sample_code,
p.provider_id AS provider_order
FROM mst_provider AS m
LEFT JOIN trx_purchase_order AS p
ON (m.provider_id = p.provider_id)
UNION
SELECT m.provider_id,
m.provider_name,
p.purchase_order_code,
NULL AS purchase_order_sample_code,
p.provider_id AS provider_order
FROM mst_provider AS m
RIGHT JOIN trx_purchase_order AS p
ON (m.provider_id = p.provider_id)
UNION
SELECT m.provider_id,
m.provider_name,
NULL,
s.purchase_order_sample_code,
s.provider_id
FROM mst_provider AS m
RIGHT JOIN trx_purchase_order_sample AS s
ON (s.provider_id = m.provider_id)
) _temp
WHERE provider_order IS NOT NULL