This is very similar to:
MySQL Bug#21505 Create view - illegal mix of collation for operation 'UNION'
which was fixed in 2006, but now for an aggregate function GROUP_CONCAT.
The problem is that create_tmp_field_from_item() in sql_select.cc and Item_sum::create_tmp_field() are exactly the same 40 lines of the code.
create_tmp_field_from_item() was fixed by Bug#21505, while Item_sum::create_tmp_field() was not.
The code in create_tmp_field_from_item() should be moved as a method in Item, and Item_sum::create_tmp_field() should just reuse it.