Au final, je suis partie sur un UNION qui fonctionne parfaitement ;)
SELECT DISTINCT adresse FROM contacts WHERE adresse != '' AND adresse LIKE '%".$str."%' UNION SELECT DISTINCT adresse FROM biens WHERE adresse != '' AND adresse LIKE '%".$str."%' ORDER BY 1