mysql_query() (and relatives), returns true if it gets a result set with more than 0 rows for SELECT queries (and a few others), and FALSE otherwise.
You can simply try your first query in an if statement, and then run the second one if it returns FALSE:
$query1 = "SELECT *
FROM residential
LEFT JOIN featuredlistings
ON (residential.Id = featuredlistings.Idf AND featuredlistings.Idf = '$Id')
WHERE residential.Id='$Id'";
$query2 = "SELECT * FROM multi
LEFT JOIN featuredlistings on (multi.Id = featuredlistings.Idf AND featuredlistings.Idf = '$Id')
WHERE multi.Id='$Id'";
if (!$result = mysql_query($query1))
$result = mysql_query($query2);