MySql を使用している場合は、次のソリューションを使用できます。
select group_concat(coalesce(c,'null') order by c is null, c)
from (
select col1 c from tbl
union
select col2 c from tbl
union
select col3 c from tbl
) u
ユニオン クエリはすべての値を選択し、すべての重複を削除します。次に、結果を単一の文字列で返し、最後に null 値を持つ値で並べ替え、null を「null」に変換します (group_concat は null 値を無視するため)。
SQLite を使用している場合、Group_Concat は order by をサポートしていません。これを使用できます。
select group_concat(coalesce(c,'null'))
from (
select col1 c, col1 is null o from mytable
union
select col2 c, col2 is null o from mytable
union
select col3 c, col3 is null o from mytable
order by o, c
) u