parce que la regex d'Oracle déplace la position correspondante vers l'avant après une correspondance, vous devez faire regexp deux fois malheureusement
regexp_replace(regexp_replace(col1,'(^|,)(SL)(\W|$)','\1\3',1,0,'imn') ,'(^|,)(SL)(\W|$)','\1\3',1,0,'imn')