OUTER JOINでフィルタリングする場合は、ON句でフィルタリングするか、派生テーブルとしてフィルタリングする必要があります。 image.display_order = '1'
の場合 WHEREにある場合は、常にINNERJOINになります
SELECT
topic.content_id,
topic.title,
image.location
FROM
mps_contents AS topic
LEFT JOIN
mps_contents AS image ON topic.content_id = image.page_id
AND image.display_order = '1'
WHERE
topic.page_id = (SELECT page_id FROM mps_pages WHERE page_short_name = 'foo' )
または
SELECT
topic.content_id,
topic.title,
image.location
FROM
mps_contents AS topic
LEFT JOIN
(
SELECT *
FROM mps_contents
WHERE display_order = '1'
) AS image ON topic.content_id = image.page_id
WHERE
topic.page_id = (SELECT page_id FROM mps_pages WHERE page_short_name = 'foo' )