You may try using the base string functions here:
INSERT INTO TABLE a (name, id)
SELECT
SUBSTR(col, 1, INSTR(col, ',') - 1),
SUBSTR(col, INSTR(col, ',') + 1)
FROM table2;
If you don't want to insert the insert quotes, then we can slightly modify the above to the following:
INSERT INTO TABLE a (name, id)
SELECT
SUBSTR(col, 2, INSTR(col, ',') - 2),
SUBSTR(col, INSTR(col, ',') + 2, LEN(col) - INSTR(col, ',') - 2)
FROM table2;
As has been mentioned in the above comments, storing CSV data in your tables is generally not a good idea. But your question is a good one, because you are trying to solve that problem by moving each value to a new column.
'john','1', as two strings separated by a comma?coldata literally'John','1', with those single quotes?