Для меня это выглядит как решение, так как я использую его с MariaDB, взгляните на предложение WHERE:
SELECT MONTH(yourTimestampOrDateColumn) AS MONTH, USER, ActionID, COUNT(*) AS TOTAL_ACTIONS, ROUND(SUM(totalpoints)) AS TOTAL_PTS
FROM MyTable
WHERE MONTH(yourTimestampOrDateColumn) BETWEEN MONTH(CURDATE() - INTERVAL 6 MONTH) AND MONTH(CURDATE())
GROUP BY MONTH;

На изображении мы видим только месяцы, когда у пользователя были реальные данные, записанные в БД (таким образом, показывая только 4 месяца вместо 6).
Таким образом, этот месяц является 10-м (октябрь), 6 месяцев назад был 4-м месяцем (апрель), поэтому запрос будет искать этот интервал (от 4 до 10).