В таком формате он там сравнительно недавно.
По хорошему.
Так как в Mega фильтре коллекция значения атрибутов кешируется и кешируется грамотно с возможностью выставить произвольное время хранения а не час по дефолту, для среднестатистического проекта, в котором до 500 товаров на категорию, особой оптимизации этого запроса не нужно. Да и опять же, как его оптимизировать то? Если у нас там тип поля text. Также эта конструкция совершенно по иному воспринимается, если вспомнить, что в фильтре есть возможность сегментации значений при помощи разделителя, например: цвет: красный, зеленый - могут быть уникальными значениями красный (3), зеленый (5). В таком формате в принципе про любые индексы можно забыть. Как альтернатива авторы Mega фильтра предлагают версию PLUS, которая создает уникальный индекс в дополнительные поля в таблицу product. Но у меня ни разу не получилось увидеть выгоды от использования PLUS, так как просто кастомная оптимизация вышеприведенного запроса дает лучшие результаты.
Формировать отдельный индексируемый справочник с crc32('text') значениями, авторы фильтра я так понимаю считают излишней роскошью.
Поэтому на больших проектах способы борьбы достаточно простые - вырезать все лишнее, немного перестроить порядок полей в запросе, немного составных индексов ну и правильно сконфигурированный mysql сервер - до 10к товаров, практически панацея. А вот на примере 75-100 к товаров на категорию с десятком значений атрибутов, это уже не вариант, но здесь на помощь приходит sphinx и json поля.