Nothing personal but I want to see it with my eyes...
could you please run the following code and post the whole log?

Please... humor me and fully qualify everything replacing "schema" with the right schema_name.

create materialized view schema.mv_abc1
refresh on demand with rowid
as
select distinct col1, col2, col3, user, sysdate from schema.abc;

set pagesize 0
set linesize 180
set long 90000
SELECT DBMS_METADATA.GET_DDL('MATERIALIZED_VIEW','MV_ABC1','SCHEMA') FROM dual;

IF output shows MV created using PK as you claim, please post query showing you do not have a PK on base table; also post Oracle version and platform.

IF output shows MV created using rowid, you know