no.
hai un concatenamento di stringa dove mancano i "."


$sql_mod = "update cart_prodotti set id_sotcat = ".$id_sotcat." where id_sotcat = ".$id_sot_old;

così funziona