It's actually working as expected.
You can only have parent = ndb.KeyProperty(kind="Item")
as the kind of Folder as stored in the datastore is Item.
It has additional properties that define it's inheritance heriarchy and allows you to perform queries like Item.query() and get all subclasses of Item.
Have another read of PolyModel docs and have a look at the entities as stored in the datastore, then everything will be clear.