Why does adding an index on a column containing a char version of a UUID decrease performance?
The EXPLAINs show that, with the index, it used the index.  That lead to jumping around:  Pick the next alphabetical UUID, reach into the table in random location for the rows to find the amounts to SUM up.
Without the index, it simply plowed through straight through the table, collecting data, then sorting in order to finish the task.
3.5M random lookups apparently takes longer than sorthing 3.5M rows.
Converging the UUID to BINARY(16) would shrink it, thereby helping a little.
Having INDEX(uuid, amount) would significantly speed up this query.  But still, the random nature of uuids is a performance drag.
Some related discussion:  http://mysql.rjweb.org/doc.php/uuid