Hola Nuño, te devuelve los valores raros porque estas haciendo un count sobre cada grupo. Has hecho la prueba de hacer un count sobre el resultado de tu consulta.
Código SQL
[-]
SELECT count(*)
From ( SELECT `productos`.`descripcion` AS `descripcion`, SUM
(`detalle_pedido`.`unidades`) AS `unidades`
FROM `detalle_pedido`, `pedidos`, `productos`
WHERE `detalle_pedido`.`pedidos_id`=`pedidos`.`id`
AND `detalle_pedido`.`productos_id`=`productos`.`id`
AND '$Fecha1'<=`pedidos`.`fecha_orden`
AND `pedidos`.`fecha_orden`<='$Fecha2'
GROUP BY `detalle_pedido`.`productos_id`)
Saluditos