But why is a Truck a singleton? Shouldn't it be the parking lot itself?
As for serialization, ideally any objects that "can be transferred over a network" should be serialized. Given your case, if you say serialize your VehicleType then all subclasses (eg Truck, Car, Van, Bus etc) will inherit this serialization. Yet the serialVersionUID should be different for every class.
There is something very peculiar about singletons when we know there are many different Vehicle objects being driven around. There is also something non‑object‑oriented about a String which records the type of each object.
Back to the singleton. Suppose I follow your logic of using say Truck as a singleton ... then I expect in your parking lot there will only be one truck or one car or one van... one of every vehicle type we can think of. To me this doesn't make sense.
Chan for the serialization issue, the ultimate question to ask is: what kind of system is it? Client/server or Web or GUI or something else. If it is a pure client/server system (meaning the server part can be run in a separate VM "and" use the VehicleType class(es) as a transfer object or value object then yes serialize it. Else implement based on your gut feeling (aka optional).