oh right yeah, amending the score to have MAX means that I get the answer I expect
MAX(ROUND(0 + MATCH (post_content) AGAINST ('solar cabbage brassicas caterpillars farms panels beneficial may plants butterflies chemical glucobrassicin eggs fields increase insects insect wildlife offer damaged'))) AS score
Maybe some mysql config setting has changed on my new database server (which means the group by aggregation is behaving differently)