en muchas ocasiones los procedimientos no se guardan en cache.
por eso hay que llamarlo con una conexión normal y luego de rescatar el arreglo con  mysql_fetch_array() cerrar y liberar la conexión.
esto es lo que me resulta a mi. 
ejemplo: 
 Código PHP:
    <?php
$link = mysql_connect('localhost', 'mysql_user', 'mysql_password');
if (!$link) {
    die('Could not connect: ' . mysql_error());
}else{
echo 'Connected successfully';
}
$query="call NuevoP(18)";
$result = mysql_query($query,$link);
$b= mysql_fetch_array($result);
mysql_close($link);
echo $b[0];
?>