Ahm no quiero parecer tonta, pero, cuando realizas la segunda consulta, es decir cuando pulsas enviar de donde sacas el valor de la variable $id?. Porque ya no la estas enviando por GET. Te propongo una cosa a ver si es lo que sospecho.
En el formulario añade un input de tipo hidden y que tenga como value el valor de la variable $id y en el if extrae también el valor de este campo. sería algo asi.
Código PHP:
Ver original<?php
include("conexion.php");
$id = $_GET['id_producto'];
$nombre = $_POST['nombre'];
$consulta = "SELECT * FROM productos WHERE id_producto=$id_r";
if(isset($_POST["enviar"])){ $id_producto = $_POST['id']
$consulta = "UPDATE productos SET nombre='$nombre' WHERE id_producto=$id_producto";
echo "Los datos fueron actualizados con éxito!.\n";
} else {
?>
<form action="modifica.php" method="post">
<input name="nombre" type="text" value="<?php echo $fila["nombre"]; ?>">
<input type="submit" value="Guardar Cambios" name="enviar">
<input type="hidden" name="id" value="<?php echo $id ?>">
</form>
<?php
}
?>