SELECT (column_no::text || ',' || name || ',' || phone::text) AS comma_separated
FROM master_table WHERE id = 1
EDIT :
After your comment, I think you'd need a function. Even if I don't agree with the whole idea (it's much better to do that in the application layer), here is a function which makes what you are asking. It is ugly.
CREATE OR REPLACE FUNCTION GetCommaSeparatedValues(PAR_table text, PAR_where_clause text DEFAULT '') RETURNS TABLE (
comma_separated_values text
) AS $$
DECLARE
REC_columns record;
VAR_query text;
BEGIN
VAR_query := '';
FOR REC_columns IN SELECT column_name FROM information_schema.columns WHERE table_schema = current_schema AND table_name = PAR_table LOOP
IF VAR_query <> '' THEN
VAR_query := VAR_query || ' || '','' || ';
END IF;
VAR_query := VAR_query || ' CASE WHEN ' || REC_columns.column_name || ' IS NULL THEN ''null'' ELSE ' || REC_columns.column_name || '::text END';
END LOOP;
VAR_query := 'SELECT ' || VAR_query || ' FROM ' || PAR_table::regclass || ' ' || PAR_where_clause;
RETURN QUERY EXECUTE VAR_query;
END;
$$ LANGUAGE plpgsql;
Usage:
SELECT * FROM GetCommaSeparatedValues('table1');
or
SELECT * FROM GetCommaSeparatedValues('table2', 'WHERE id = 1');