You want all posts from before 6am on day n+1 to be tabulated as if they were from day n. That means you want them to be tabulated as if they were made six hours earlier than the actual time stamp.
Here's what you do.
SELECT COUNT(*) AS COUNT,
DATE(POST_DATE - INTERVAL 6 HOUR) AS POST_DATE
FROM POST
WHERE DATE(POST_DATE - INTERVAL 6 HOUR) = ?
GROUP BY DATE(POST_DATE - INTERVAL 6 HOUR)
In all cases, you just offset the POST_DATE by six hours. I assume that when you choose a particular day for posts you want it to run from 06:00 to 06:00, not midnight to midnight.
Notice that your WHERE clause defeats the use of an index on POST_DATE, because of the function on the column value. You may want this instead.
WHERE POST_DATE >= ? + INTERVAL 6 HOUR
AND POST_DATE < ? + INTERVAL 1 DAY + INTERVAL 6 HOUR