När denna fråga
UPDATE tabex SET field1=CONCAT(tabex.a1,', ',tabex.a2,', ',tabex.a3,', ',tabex.a4,', ',tabex.a5,', ',tabex.a6,', 'tabex.a7,', ',tabex.a8,', ',tabex.a9 );
påverkar inte en rad, den enda förklaringen skulle vara att tabellen är tom. Det skulle uppdatera varje rad i tabellen. Men om en av kolumnerna är NULL, kommer din field1-kolumn också att vara NULL.
För att undvika det måste du använda COALESCE()-funktionen. Denna funktion returnerar den första av dess parametrar som inte är NULL.
UPDATE tabex SET field1=CONCAT(COALESCE(tabex.a1, ''),', ',...);
På en sida måste jag fråga varför du vill göra detta. Kommaseparerade värden i kolumner är oftast en dålig idé.
Och slutligen, din fråga med CONCAT_WS() är fel. _WS i funktionsnamnet är förkortning för "med separator", så den första parametern är separatorn som sedan placeras mellan funktionens andra parametrar. Så du bör skriva det så här:
UPDATE tabex SET field1=CONCAT_WS(',', tabex.a1, tabex.a2, tabex.a3,...);
En annan fördel med CONCAT_WS()-funktionen är att den ignorerar NULL-värden. Läs mer om de två funktionerna i manualen .