Your understanding is correct. The marker interface also defines a type. It can thus be used in method signatures. For example, Hibernate's Session.get() method takes a Serializable as argument. It avoids passing a primary key that would not be serializable as argument.
Note that Cloneable is, retrospectively, seen as a bad design choice.
Serializable could certainly have been implemented with an annotation if those had existed when serialization was implemented.
Marker interfaces are, most of the time, an anti-pattern. An interface should define a polymorphic behaviour. A marker interface can be replaced by an annotation.