Questo sembra essere adatto per un set di risultati UNION. Quindi devi ottenere 2 query (una per ogni "criterio") e unire il loro risultato usando union.
La prima query diventerebbe:
SELECT f1.user_id, f1.id AS file_id, SUM(f1.fileSize) AS totalSum
FROM files AS f1
WHERE f1.user_id = 1
GROUP BY f1.id
HAVING totalSum <= 350000;
Ora hai bisogno della query che seleziona se la dimensione è troppo grande:
SELECT f1.user_id, f1.id AS file_id, MAX(f1.fileSize) AS max
FROM files AS f1
WHERE f1.user_id = 1
GROUP BY f1.id
HAVING max >= 350000;
Quindi vuoi combinarli in un'unica query. Poiché entrambi hanno gli stessi campi, puoi semplicemente "unire" il risultato
SELECT f1.user_id, f1.id AS file_id, SUM(f1.fileSize) AS totalSum
FROM files AS f1
WHERE f1.user_id = 1
GROUP BY f1.id
HAVING totalSum <= 350000
UNION
SELECT f1.user_id, f1.id AS file_id, MAX(f1.fileSize) AS max
FROM files AS f1
WHERE f1.user_id = 1
GROUP BY f1.id
HAVING max >= 350000;
PS:avevi "ON f1.id>=f2.id" come criteri di unione, non sono sicuro del motivo> che sarebbe molto specifico per il caso :)