У вас между таблицами ITEMS и ATTR связь M:N (многие ко многим) поэтому логичнее всего выбирать из вспомогательной таблицы ATTR_ITEMS и связывать с ней уже прочие таблицы.
То есть основное тело запроса (до конструкции WHERE) будет что-то вроде
SELECT *
FROM `attr_items` ai
inner join `items` i on ai.id_item = i.id
inner join `attr` a on ai.id_attr = a.id
Не совсем понятно, как определяется значение для категории.
Допустим, что категория "Авто/мото" имеет id = 2, тогда для первой части вопроса:
SELECT *
FROM `attr_items` ai
inner join `items` i on ai.id_item = i.id
inner join `attr` a on ai.id_attr = a.id
WHERE
/* условие для категории */
(a.category_id = i.category and i.category = 2) and
/* условие для марки автомобиля */
(a.name = 'Марка' and ai.val = 'Audi') and
/* условие для модели автомобиля*/
(a.name = 'Модель' and ai.val = 'Audi А8')
для второй части вопроса:
SELECT *
FROM `attr_items` ai
inner join `items` i on ai.id_item = i.id
inner join `attr` a on ai.id_attr = a.id
WHERE
/* условие для категории */
(a.category_id = i.category and i.category = 2) and
/* условие для марки автомобиля */
(a.name = 'Марка' and ai.val = 'Audi') and
/* условие для года выбуска автомобиля*/
(a.name = 'Годвыпуска' and ai.val BETWEEN 2005 and 2015)
Обращаю внимание, что поле ATTR_ITEMS.VAL похоже имеет тип данных varchar, поэтому BETWEEN к для года выпуска нему может быть не применимо в том виде, что я указал. Возможно надо использовать конструкцию LIKE.
P.S. На мой взгляд, такая структура БД пригодна только для маленьких объемов данных. Но, к сожалению, она часто применяется в 1С-Bitrix на продакшене, что приводит к тормозам.