Postgresql: A bit confused on listing all roles in my system
If you want to find out, what exactly the "backslash commands" do, just start psql with the option -E (or --echo-hidden).

If you do that, you will see that \du uses the following query:

SELECT r.rolname, r.rolsuper, r.rolinherit,
  r.rolcreaterole, r.rolcreatedb, r.rolcanlogin,
  r.rolconnlimit, r.rolvaliduntil,
  ARRAY(SELECT b.rolname
        FROM pg_catalog.pg_auth_members m
        JOIN pg_catalog.pg_roles b ON (m.roleid = b.oid)
        WHERE m.member = r.oid) as memberof
, r.rolreplication
, r.rolbypassrls
FROM pg_catalog.pg_roles r
WHERE r.rolname !~ '^pg_'
ORDER BY 1;


So \du simply filters out all roles where the name starts with pg_, because role names starting with pg_ are reserved for Postgres built-in roles and you can't create a role with that prefix manually.

The default roles are explained in the manual