Teniendo una tabla una tabla llamada "test" con los campos Fecha (Datetime) y Valor(int)
Tabla
2013-02-01 00:00:00, 1
2013-03-01 00:00:00, 2
Consulta
select Mes, Valor from (
select 'Enero' as Mes, (13 - EXTRACT(MONTH FROM Now())) mod 12 as Orden, ifnull(sum(Valor),0) as Valor from test where EXTRACT(MONTH FROM Fecha) = 1
and Fecha between CAST(DATE_FORMAT(NOW() ,'%Y-%m-01') as DATE) and DATE_ADD(CAST(DATE_FORMAT(NOW() ,'%Y-%m-01') as DATE), INTERVAL 1 YEAR)
union select 'Febrero' as Mes, (14 - EXTRACT(MONTH FROM Now())) mod 12 as Orden, ifnull(sum(Valor),0) as Valor from test where EXTRACT(MONTH FROM Fecha) = 2
and Fecha between CAST(DATE_FORMAT(NOW() ,'%Y-%m-01') as DATE) and DATE_ADD(CAST(DATE_FORMAT(NOW() ,'%Y-%m-01') as DATE), INTERVAL 1 YEAR)
union select 'Marzo' as Mes, (15 - EXTRACT(MONTH FROM Now())) mod 12 as Orden, ifnull(sum(Valor),0) as Valor from test where EXTRACT(MONTH FROM Fecha) = 3
and Fecha between CAST(DATE_FORMAT(NOW() ,'%Y-%m-01') as DATE) and DATE_ADD(CAST(DATE_FORMAT(NOW() ,'%Y-%m-01') as DATE), INTERVAL 1 YEAR)
union select 'Abril' as Mes, (16 - EXTRACT(MONTH FROM Now())) mod 12 as Orden, ifnull(sum(Valor),0) as Valor from test where EXTRACT(MONTH FROM Fecha) = 4
and Fecha between CAST(DATE_FORMAT(NOW() ,'%Y-%m-01') as DATE) and DATE_ADD(CAST(DATE_FORMAT(NOW() ,'%Y-%m-01') as DATE), INTERVAL 1 YEAR)
union select 'Mayo' as Mes, (17 - EXTRACT(MONTH FROM Now())) mod 12 as Orden, ifnull(sum(Valor),0) as Valor from test where EXTRACT(MONTH FROM Fecha) = 5
and Fecha between CAST(DATE_FORMAT(NOW() ,'%Y-%m-01') as DATE) and DATE_ADD(CAST(DATE_FORMAT(NOW() ,'%Y-%m-01') as DATE), INTERVAL 1 YEAR)
union select 'Junio' as Mes, (18 - EXTRACT(MONTH FROM Now())) mod 12 as Orden, ifnull(sum(Valor),0) as Valor from test where EXTRACT(MONTH FROM Fecha) = 6
and Fecha between CAST(DATE_FORMAT(NOW() ,'%Y-%m-01') as DATE) and DATE_ADD(CAST(DATE_FORMAT(NOW() ,'%Y-%m-01') as DATE), INTERVAL 1 YEAR)
union select 'Julio' as Mes, (19 - EXTRACT(MONTH FROM Now())) mod 12 as Orden, ifnull(sum(Valor),0) as Valor from test where EXTRACT(MONTH FROM Fecha) = 7
and Fecha between CAST(DATE_FORMAT(NOW() ,'%Y-%m-01') as DATE) and DATE_ADD(CAST(DATE_FORMAT(NOW() ,'%Y-%m-01') as DATE), INTERVAL 1 YEAR)
union select 'Agosto' as Mes, (20 - EXTRACT(MONTH FROM Now())) mod 12 as Orden, ifnull(sum(Valor),0) as Valor from test where EXTRACT(MONTH FROM Fecha) = 8
and Fecha between CAST(DATE_FORMAT(NOW() ,'%Y-%m-01') as DATE) and DATE_ADD(CAST(DATE_FORMAT(NOW() ,'%Y-%m-01') as DATE), INTERVAL 1 YEAR)
union select 'Septiembre' as Mes, (21 - EXTRACT(MONTH FROM Now())) mod 12 as Orden, ifnull(sum(Valor),0) as Valor from test where EXTRACT(MONTH FROM Fecha) = 9
and Fecha between CAST(DATE_FORMAT(NOW() ,'%Y-%m-01') as DATE) and DATE_ADD(CAST(DATE_FORMAT(NOW() ,'%Y-%m-01') as DATE), INTERVAL 1 YEAR)
union select 'Octube' as Mes, (22 - EXTRACT(MONTH FROM Now())) mod 12 as Orden, ifnull(sum(Valor),0) as Valor from test where EXTRACT(MONTH FROM Fecha) = 10
and Fecha between CAST(DATE_FORMAT(NOW() ,'%Y-%m-01') as DATE) and DATE_ADD(CAST(DATE_FORMAT(NOW() ,'%Y-%m-01') as DATE), INTERVAL 1 YEAR)
union select 'Noviembre' as Mes, (23 - EXTRACT(MONTH FROM Now())) mod 12 as Orden, ifnull(sum(Valor),0) as Valor from test where EXTRACT(MONTH FROM Fecha) = 10
and Fecha between CAST(DATE_FORMAT(NOW() ,'%Y-%m-01') as DATE) and DATE_ADD(CAST(DATE_FORMAT(NOW() ,'%Y-%m-01') as DATE), INTERVAL 1 YEAR)
union select 'Diciembre' as Mes, (24 - EXTRACT(MONTH FROM Now())) mod 12 as Orden, ifnull(sum(Valor),0) as Valor from test where EXTRACT(MONTH FROM Fecha) = 12
and Fecha between CAST(DATE_FORMAT(NOW() ,'%Y-%m-01') as DATE) and DATE_ADD(CAST(DATE_FORMAT(NOW() ,'%Y-%m-01') as DATE), INTERVAL 1 YEAR)
) t order by orden
Resultado
Abril, 0
Mayo, 0
Junio, 0
Julio, 0
Agosto, 0
Septiembre, 0
Octube, 0
Noviembre, 0
Diciembre, 0
Enero, 0
Febrero, 1
Marzo, 2
Pedazo de consulta

... aunque ahora seguro que viene alguno y lo hace con solo dos lineas
Saludos