Puede agrupar en -casi- cualquier cosa que desee. Si puede obtener algo en una columna para mostrar lo que desea, puede agruparlo. Entonces, por solo dos períodos, simplemente podría agruparse en un si:
SELECT * FROM table
GROUP BY if(stamp between "2005-07-01" and "2006-02-01", 0, 1)
Si necesita que los períodos se extiendan durante períodos más largos (varios años), puede usar period_diff para distinguir:
SELECT * FROM table
GROUP BY floor(period_diff( DATE_FORMAT(stamp, "%Y%m"), "200507") / 6)
Le dará la cantidad de bloques de 6 meses transcurridos entre su fecha y el período de inicio en formato año-mes.