Андрей, вам же четко пишет ошибку: Duplicate entry 'category' for key 'tmp_external_key'.
То есть вы пытаетесь в таблицу временных данных создать сразу несколько записей с одинаковым ключом. В данном случае у вас конфликтное значение - '', то есть пустая строка. Пустая строка - это тоже значение. Если этой блокировки по неуникальным данным не будет, у вас дубли наплодятся. Скорее всего это произошло в следствии того, что вы не указали при импорте уникальный ключ для категорий (то есть каждая запись должна иметь внешний ключ (1С-артикул или типа того)). Это необходимо не только для предотвращения появления дублей, но и для того, чтобы в дальнейшем при повторном импорте выполнялось обновление ранее существующих данных, а не создание каждый раз новых объектов.
А Attempt to set NOT NULL field parent to NULL - это MODX-ошибка. Вы пытаетесь создать документ без указания поля parent. Даже если родителя у документа нет, у него parent должен быть установлен 0.