Você não parece obter muitas respostas - então aqui está algo se você não obtiver o 'como fazer isso em SQL puro'. Ignore esta solução se houver algo SQLish - é apenas uma codificação defensiva, não elegante.
Se você deseja obter uma soma de todos os dados com a mesma temporada, por que excluir registros duplicados - basta obtê-lo fora, executar um loop foreach, somar todos os dados com o mesmo valor de temporada, atualizar a tabela com os valores corretos e excluir entradas desnecessárias. Aqui está uma das maneiras de fazer isso (pseudocódigo):
productsArray = SELECT * FROM products
processed = array (associative)
foreach product in productsArray:
if product[season] not in processed:
processed[season] = product[quantity]
UPDATE products SET quantity = processed[season] WHERE id = product[id]
else:
processed[season] = processed[season] + product[quantity]
DELETE FROM products WHERE id = product[id]