Как убрать подзапрос?
Индекс на два поля -> уникальный и update ignore
Что-то, по-моему, Вы перемудрили, WHERE `category` = '1' итак отсекает те записи где `category` = '0'
вполне достаточно UPDATE `table` SET category = 0 WHERE category = 1