Aunque algo lenta, esto, creo, lo hará:
Código SQL:
Ver original(SELECT N_pedido, No_detalle, producto, tipo
FROM pedido_detalle
WHERE EXISTS(SELECT N_pedido
FROM `pedido_detalle`
WHERE N_pedido = '001' AND tipo = 'nuevo' GROUP BY N_pedido HAVING COUNT(*) > 0)
AND N_pedido = '001' AND tipo = 'nuevo')
UNION ALL
(SELECT N_pedido, No_detalle, producto, tipo
FROM pedido_detalle
WHERE NOT EXISTS(SELECT N_pedido
FROM `pedido_detalle`
WHERE N_pedido = '001' AND tipo = 'nuevo' GROUP BY n_pedido HAVING COUNT(*) > 0)
AND n_pedido = '001')
Adapta los nombres de los campos y compruébalos. Esa es la idea.