Пример реализации, когда показанный список передаётся в запрос как один (многострочный) строковый литерал
@list:
INSERT INTO test (a,b,c,d)
SELECT a,b,c,d
FROM JSON_TABLE(
CONCAT('[', REPLACE(REPLACE(@list, '(', '['), ')', ']'), ']'),
'$[*]' COLUMNS (
a INT PATH '$[0]',
b INT PATH '$[1]',
c INT PATH '$[2]',
d INT PATH '$[3]'
)
) jsontable
DEMO fiddle
Если данные на вставку лежат в файле - есть функция LOAD_FILE (не забыть
GRANT FILE).
Если данные передаются из языка/фреймворка - разумнее прямо там создать JSON и не париться с CONCAT и REPLACE.
Если NULL не устраивает - добавить COALESCE.