Левое объединение возьмет все строки из первой таблицы (фильмы) и попытается сопоставить со второй таблицей (movie_publications).Если это невозможно, вместо столбцов второй таблицы будут вставлены столбцы NULL.
Если вы не хотите, чтобы это происходило, используйте INNER JOIN.
UPDATE: вы сказали в комментариях, что фильмы могут иметь или не иметь публикацию, но всегда будут иметь изображение, поэтому вы можете переписать запрос следующим образом.Если вы не совсем уверены, что во всех фильмах есть изображение, вы можете использовать LEFT JOIN также для movie_image.
SELECT m.*, mi.filename, COUNT(p.movieid) AS publicationsCount
FROM movies m
LEFT JOIN movie_publications p
ON (m.movieid = p.movieid)
INNER JOIN movie_image mi
ON (m.movieid = mi.movieid)
GROUP BY m.movieid