As far as I remember, ksession.getProcessInstances() ALWAYS returns an empty list when you are using persistence. The idea is not to get all the instances from the DB since you could have a lot of them.
If you want to continue the execution of a previous instance you don't need (most of the times) the id of the process, what you need to do is execute the action the instance is waiting for: complete a User Task, complete a Work Item or signal an event.
Best Regards,