The answer depends on what kind of ALTER you execute. If your ALTER changes just Oracle metadata (for example you add nullable columns to table or add constraint in novalidate mode or set columns unused) you don't depend on user data volume. If you move your table or drop columns or shrink table (do something what requires the request or manipulation data) you depends on user data volume. You need to consult with Oracle documentation and understand what Oracle does in particular case.
Your particular case will touch data in blocks because Oracle needs to add 2 trailing spaces to existing data and execution time can be huge. This is one of many reasons to use varchar2 in favor of char:
SQL> create table t (x char(10));
Time spent: 00:00:00.04
SQL> insert /*+ append */ into t select 'x' from dual connect by level <= 1000000;
Time spent: 00:00:01.17
SQL> commit;
Time spent: 00:00:00.04
SQL> alter table t modify (x char(20));
Time spent: 00:00:52.85
SQL> drop table t;
Time spent: 00:00:02.54
SQL> create table t (x varchar2(10));
Time spent: 00:00:00.07
SQL> insert /*+ append */ into t select 'x' from dual connect by level <= 1000000;
Time spent: 00:00:01.27
SQL> commit;
Time spent: 00:00:00.05
SQL> alter table t modify (x varchar2(20));
Time spent: 00:00:00.07