A ver, en principio el código javascript es correcto, a ver prueba una cosa a ver si van por ahí los tiros.
Create una función entre <head> y </head> que se llame por ejemplo pop1
y mete el código que tenias hecho en ella, de esta manera:
<script language="javascript">
function pop1()
{
window.opener.location.href="panel_usuario.php";
window.close();
}
</script>
Ahora, despues de tu código php llamas a la función.
<?
mysql_query("INSERT INTO contactos (userid,username_contacto,mensaje,fecha,estado) VALUES ('$id','$de','$mensaje','$fecha2','$estado')") or die(mysql_error());
mysql_free_result();
mysql_close();
?>
<script>pop1()</script>
Prueba a ver que pasa, si no funciona fijate que error te da el javascript y ponlo aquí que intentaremos solucionar el problema. Pero en principio el código lo tienes bien.
Por cierto, no sé si este post es muy adecuado en este foro..

A ver que te dicen.