PLPGSQL function(multiple column output)--gives error
It seems you simply want to return the result of the query. To do that, the function needs to be declared as a set returning function. Your current function is a scalar function that returns a single character (char). 

You also don't need dynamic SQL or even PL/pgSQL for that: 

create or replace function help_constraint(p_schemaname text, p_tablename text) 
  returns table(constraint_type text, constraint_name text, delete_action text, update_action text, status_enabled boolean, status_for_replication text, constraint_keys text)
as 
$body$
  SELECT tc.constraint_type,
         tc.constraint_name,
         null::text as delete_action,
         null::text as update_action,
         null::boolean as status_enabled,
         null::text as status_for_replication,
         coalesce(cc.check_clause, ccu.column_name ) as constraint_keys 
  from information_schema.table_constraints AS tc 
    JOIN information_schema.constraint_column_usage ccu 
           ON tc.constraint_catalog = ccu.constraint_catalog 
          AND tc.constraint_schema = ccu.constraint_schema 
          AND tc.constraint_name = ccu.constraint_name
    left JOIN information_schema.check_constraints cc 
           ON tc.constraint_catalog = cc.constraint_catalog 
          AND tc.constraint_schema = cc.constraint_schema 
          AND tc.constraint_name = cc.constraint_name 
  where tc.constraint_type IN ('FOREIGN KEY', 'PRIMARY KEY', 'CHECK')
    and ccu.table_schema = p_schemaname 
    and ccu.table_name = p_tablename;
$body$
language sql; 


Note that I change the first left join to an inner join as the where condition on ccu makes it an inner join  anyways. 

To use that function use:

select *
from help_constraints('public', 'my_table');