Esta consulta está eliminando todas las categorías de su publicación porque le está indicando la cláusula where. Básicamente, está diciendo que elimine todos los registros de la tabla posts_categories que tengan una identificación de publicación =$post_id. Debe agregar a su cláusula where para que sea más específico.
$delete_id = mysqli_query($mysqli,"DELETE FROM posts_categories WHERE post_id = '" . $post_id . "' AND categoryID = '". $query_cat_id[$x] ."'");
Esto ahora dice lo mismo que usted pero agrega un calificador adicional. Solo elimine filas de la tabla donde post_id es $post_id y el ID de la categoría es (valor de su casilla de verificación sin marcar).
Descargo de responsabilidad:estoy adivinando dónde está almacenando sus ID de categoría en su función ($query_cat_id[$x]).