Deze zoekopdracht verwijdert alle categorieën uit je bericht omdat je het vertelt waar-clausule. Je zegt eigenlijk:verwijder elke record uit de tabel posts_categories die een post-id =$post_id heeft. U moet uw waar-clausule toevoegen om deze specifieker te maken.
$delete_id = mysqli_query($mysqli,"DELETE FROM posts_categories WHERE post_id = '" . $post_id . "' AND categoryID = '". $query_cat_id[$x] ."'");
Dit zegt nu hetzelfde als wat je deed, maar voegt een extra kwalificatie toe. Verwijder alleen rijen uit de tabel waar de post_id $post_id is en de ID van de categorie is (waarde van uw niet-aangevinkte selectievakje).
Disclaimer:ik gok waar u uw categorie-ID's opslaat in uw functie ($query_cat_id[$x]).