Базовые знания - потрачено...
У вас инпуты с одинаковыми именами, соответственно передаются они один за другим на сервер, где воспринимаются как переменные с соответствующим именем. Логично что последний зачеканый чекбокс тупо затрет предыдущее значение переменной с тем же именем.
Самое простое решение - добавить "индивидуальности" именам полей.
так в скрипте будет выводиться как многомерный массив c ключом категорией:
<input type="checkbox" name="seller[categ][<?php echo $category['category_id']; ?>]" checked="checked" value="<?php echo $category['category_id']; ?>"/>
так будет выводиться как многомерный массив c автоинкрементным ключом:
<input type="checkbox" name="seller[categ][]" checked="checked" value="<?php echo $category['category_id']; ?>"/>
а так как обычный массив:
<input type="checkbox" name="seller_categ_<?php echo $category['category_id']; ?>" checked="checked" value="<?php echo $category['category_id']; ?>"/>