Mira, estuve realizando estas pruebas para simular lo que tienes...
Código PHP:
<?
$categoria["nombre"]="a";
$id_producto[1]=$_GET[$categoria['nombre']];
echo $id_producto[1];
?>
La linea de la que hablamos estaba funcionando bien, tendrias que volver a dejarla como estaba: $id_producto[$i]=$_POST[$categoria["nombre"]];
El problema debe de estar en otra parte, al menos la estructura del POST estaba bien como estaba.
Revisare y si encuentro donde esta la falla volvere a responder...
Saludos.