Cita: INSERT INTO gol VALUES (
'',
$goles1_persona[$i],
'$equipo1',
'$id',
'$goles1_minuto[$i]'
)
esta es tu sentencia inicial, pero no tiene ningún sentido. Si es posible o no insertar un null en una foreign key, no descarta que no controles esto al momento de hacer un simple insert.
Se supone que una relación se crea para mantener la consistencia de una base de datos y evitar información redundante y la clausula
set null es muy útil cuando la llave a borrar, no solo depende de la tabla si no de otras mas, pero nunca para hacer lo que tratas.
No tiene sentido crear una relación para ingresar valores vacíos o nulos. Si el registro que tratas de insertar en el campo id no sabes a que pegarlo de la otra tabla, crea un registro que se llame
no asignado o algo parecido para establecer la relación correctamente.