1. Не увидел схему таблицы категорий
2. Не понял каким боком тут mysql. Подозреваю что хотите работать с json отсевом на уровне mysql но не уверен. Если хотите: LIKE, RLIKE и собственный генератор регулярных выражений. Хотя и смысла особо не вижу. Если объем данных не большой, то нагрузка что с поиском применяющим RLIKE, что просто на уровне php равноценна. А может даже на MySQL будет больше
3. На счет того что "усложнил" склонен согласится.
4. Не понял зачем хранить категории в json, подозреваю что нужна система подкатегорий, но тогда Adjacency List, Materialized Path и Nested Set в помощь.