let _x = *ptr
does create a reference a dereference it. Very unsafe.
let _ = *ptr
This is a weird special case in Rust that has no practical use for pointers. Unlike literally any other variable name, this isn't assignment of an expression, it's a match of a pattern that doesn't do anything and the expression is unused. This being a magical no-op used to even accidentally allow unsafe code in safe Rust, because the code was ignored and did nothing (but those bugs have been fixed).
It doesn't make *ptr any safer, but rather it's a useless and unused and whether that has consequences is unclear (if a ptr is dereferenced in a forest and nobody hears it, is it sound?)