Entiendo.
 
Para lograr eso, debes hacer uso de subconsultas y el comando case.   
Código SQL:
Ver original- SELECT *FROM 
- ( 
- SELECT to_char(fecha_timestamp, 'YYYY') anio,to_char(fecha_timestamp, 'Month') mes, SUM(valor) valor 
- FROM tabla  
- GROUP BY to_char(fecha_timestamp, 'YYYY'),to_char(fecha_timestamp, 'Month') 
- ) meses 
- ORDER BY (CASE WHEN meses.mes='January' THEN 1  
-            WHEN meses.mes='February' THEN 2  
-            WHEN meses.mes='March' THEN 3  
-            WHEN meses.mes='April' THEN 4  
-            WHEN meses.mes='May' THEN 5  
-            WHEN meses.mes='June' THEN 6  
-            WHEN meses.mes='July' THEN 7  
-            WHEN meses.mes='August' THEN 8  
-            WHEN meses.mes='September' THEN 9  
-            WHEN meses.mes='October' THEN 10      
-            WHEN meses.mes='November' THEN 11     
-            WHEN meses.mes='December' THEN 12     
-            ELSE 0 END  
-       ); 
También puse el año, pero si deseas, lo puedes quitar como culumna y hacerlo en el where como filtro. De lo contrario, te mezclaría varios años en caso de que tengas mas registros.