Они показываются, потому что каждая строка не соответствует другой, поэтому у вас есть строки, которые не соответствуют
SELECT Table1.area
FROM Table1
INNER JOIN Table2 ON Table1.area != CONCAT('items_', Table2.kat, '_', Table2.area)
, может быть, вы хотите, чтобы не в
SELECT Table1.area
FROM Table1
where Table1.area NOT IN (
SELECT CONCAT('items_', Table2.kat, '_', Table2.area)
FROM Table2
)
и какпредложение не использовать (старый) синтаксис объединения импликов, основанный на предложении where ... использовать явный синтаксис объединения ..