I ran the query with serialdirect_read = true at the session level. Please find below statistics from autotrace.
SELECT * FROM table1 WHERE id = 1001
serialdirect_read does not seem to be part of the optimizer environment settings.
alter session set events 'sql_trace wait=true';
Although direct path read is not an optimizer decision it ,nevertheless, depends in some way on the decision made by the optimizer on the choice this one will made to read your segment.
was exepecting that during the 2nd execution there would still be physical reads going to the disk (because direct read does not cache to the buffer).