Here's a solution for MySQL 8.0:
select group_concat(json_unquote(json_extract(t.data, concat('$.', j.`key`))) separator '') as joined_string
from mytable cross join json_table(json_keys(mytable.data), '$[*]' columns (`key` varchar(20) path '$')) j
join mytable t on json_type(json_extract(t.data, concat('$.', j.`key`)))='STRING';
Output given your example data:
+-----------------------+
| joined_string |
+-----------------------+
| Something123Hi world! |
+-----------------------+
I wonder, however, if this is a good idea to store data in JSON if you need to do this. The solution is complex to develop, and would be hard to debug or modify.
Using JSON to store data as a document when you really want SQL predicates to treat the document's fields as discrete elements is harder than using normal rows and columns.
If you're using MySQL 5.7 or earlier, then the JSON_TABLE() function is not supported. In that case, I'd suggest fetching the whole JSON document into your application, and explode it into an object you can manipulate.