Из вашего запроса я бы пошел с:
SELECT * FROM tableName
WHERE MONTH(created) = 7
AND (
( MONTH(CURDATE()) <= 7 AND YEAR(created) = YEAR(CURDATE()) - 1 )
OR
( MONTH(CURDATE()) > 7 AND YEAR(created) = YEAR(CURDATE()) )
)
Если вы хотите (как ваш вопрос в комментариях) данные ПОСЛЕ такого времени, перейдите с:
SELECT * FROM tableName
WHERE created <= CURDATE()
AND (
(
MONTH(CURDATE()) <= 7
AND created >= DATE_SUB(DATE_FORMAT(CURDATE(), '%Y-07-01'), INTERVAL 1 YEAR)
)
OR
(
MONTH(CURDATE()) > 7
AND created >= DATE_FORMAT(CURDATE(), '%Y-07-01')
));