SELECT DISTINCT keywords.id
FROM keywords
JOIN images_keywords ON keywords.id = keyword_id
JOIN images ON image_id = images.id WHERE images.space = 1
С какой целью вы вообще в этом подзапросе джойните таблицу keywords?
SELECT DISTINCT keyword_id
FROM images_keywords
JOIN images ON image_id = images.id WHERE images.space = 1
Тот же самый результат будет.
Вообще, джойн с подзапросом вам и не нужен
SELECT SQL_NO_CACHE *
FROM keywords
WHERE keywords.id IN (
SELECT DISTINCT keyword_id
FROM images_keywords
JOIN images ON image_id = images.id WHERE images.space = 1
)
Для mysql актуальных версий in subquery должен работать адекватно.