Redshift: Table columns can be found in information_schema.columns but not in pg_catalog.pg_table_def
Check show search_path; to make sure you are on the current path where the table was created.
As stated on the original AWS redshift documentation. 


  PG_TABLE_DEF only returns information about tables that are visible to the user.


to get what you want you should run

set search_path to '$user', '&lt;#your_schema#&gt;';
select * from pg_catalog.pg_table_def where tablename = '&lt;#your_table#&gt;';

Hope that helps.