ese error te está indicando que el parametro que recibe la función mysql_num_rows() es un resultado de consulta 'NO Valido'.
prueba con esto:
Código PHP:
$sql = "SELECT id_producto, nombre_producto, descripcion_producto, precio, imagen FROM productos WHERE status_producto = '1' ORDER BY fecha_creacion DESC LIMIT 4";
$query_lista_productos = mysql_query($sql) or die (mysql_error());
$num_pro = mysql_num_rows($query_lista_productos) or die (mysql_error());
para que te des una idea del verdadero error(que lo mas seguro sea de la consulta).
saludos.
PD. cuando tu consulta es solo a una tabla no es necesario poner el nombre de la tabla antes de cada campo, eso solo se hace cuando es mas de una tabla, por aquello de la ambiguedad.