Lo he mirado y parece estar bien , pero prueba a escribirlo asi mejor por si las moscas:
Código PHP:
<?php
if($id_cat==0){
$consulta=mysql_query("SELECT * FROM producto WHERE nombre
LIKE '%".$_GET['texto']."%' ORDER BY nombre",$conexion) or die(mysql_error());
}else{
$consulta=mysql_query("SELECT * FROM producto WHERE nombre
LIKE '%".$_GET['texto']."%' AND categoria=".$categoria." ORDER BY nombre",$conexion) or die(mysql_error());
}
if(mysql_num_rows($consulta)==0)
echo '<p class="titulo">No se encontraron resultados</p>';
?>
Aun asi yo probaria primero con la primera consulta a ver si te funcionara solo esa y luego la otra.. a ver si es error de sintaxis, o la consulta... que ahi ya no se si estara bien o no :\