The variable's @var value is a string literal and can't be used as a column.
You can do what you want with a CASE expression:
SET @var = DATE_FORMAT(NOW(), '%a');
SELECT *, @var
FROM team LEFT JOIN fav
ON team.Tag = fav.Tag
WHERE ID = '123456'
AND '1' = CASE @var
WHEN 'Mon' THEN Mon
WHEN 'Tue' THEN Tue
WHEN 'Wed' THEN Wed
WHEN 'Thu' THEN Thu
WHEN 'Fri' THEN Fri
WHEN 'Sat' THEN Sat
WHEN 'Sun' THEN Sun
END
ORDER BY team.Name;
Or without the variable:
SELECT *
FROM team LEFT JOIN fav
ON team.Tag = fav.Tag
WHERE ID = '123456'
AND '1' = CASE DATE_FORMAT(NOW(), '%a')
WHEN 'Mon' THEN Mon
WHEN 'Tue' THEN Tue
WHEN 'Wed' THEN Wed
WHEN 'Thu' THEN Thu
WHEN 'Fri' THEN Fri
WHEN 'Sat' THEN Sat
WHEN 'Sun' THEN Sun
END
ORDER BY team.Name;
Inside the CASE expression qualify the columns Mon, Tue, Wed, Thu, Fri, Sat, Sun with the table (team or fav) they belong.
SET? Why not just put that in the condition?SELECT *, '1'for Monday. Consider making your data properly relational so you can do this query without a lot of fuss.