может там просто exit('Fatal error')варианты с идиотизмом такого плана конечно есть, но более очевидным все же кажется вариант когда изображение пустое и нормальная функция тупо падает при несовпадении типов входных данных.
если в товаре нету изображения, то пытаемся получить его с таблицы с тегами
SELECT * FROM `table` WHERE
`tags` like "%Garry's%" or
`tags` like "%Mod%" or
`tags` like "%Key%"
1) откройте консоль браузера и перейдите на вкладку нетворк.
2) при отсылке вашего аякс запроса создастся новое соединение, кликнув на него можно посмотреть какие данные ушли и что вы получили в ответе от сервера.
3) Теоретически, запрос должен уйти в кабинет контроллер едит экшн(по роуту, если оно так у вас работает), однако в коде я не вижу никаких экшнов кроме индекса. Скорее всего в ответе сервера вывалится ошибка или ответ от какого-то дефолтного роута, как там у вас реализовано.
4) Что бы экшн возвратил json его надо как-то создать, нигде не вижу как вы получаете json на сервере.