Попробуйте так (возможно, что ваша ошибка - это условный ambiguous name и проблема в том, что при выводе в результирующую таблицу у вас попадает поле id, которое есть в двух соединяющихся таблицах):
SELECT
l.name AS name,
l.id AS id,
r.age AS age
FROM
(
SELECT DISTINCT
name, id
FROM
names
WHERE
name = 'Андрей'
) AS l
LEFT JOIN
ages AS r
ON
l.id = r.id