This is strange, I have just made a small test with "Evaluation" process bundled with jBPM, here are the results with only the 1st step of the process (start process and input values in the form).
>>
select * from processinstancelog;
id | end_date | outcome | parentprocessinstanceid | processid | processinstanceid | start_date | status
----+-------------------------+---------+-------------------------+-----------------------+-------------------+-------------------------+--------
1 | 2013-01-02 16:53:00.519 | | -1 | com.sample.evaluation | 1 | 2013-01-02 16:21:53.245 | 2
2 | | | -1 | com.sample.evaluation | 2 | 2013-01-02 18:20:37.303 | 0
select * from processinstanceinfo;
instanceid | id | lastmodificationdate | lastreaddate | processid | processinstancebytearray | startdate | state | optlock
------------+----+-------------------------+-------------------------+-----------------------+--------------------------+-------------------------+-------+---------
2 | 2 | 2013-01-02 18:20:37.352 | 2013-01-02 18:20:39.155 | com.sample.evaluation | 1067759 | 2013-01-02 18:20:37.299 | 1 | 3
>>
To have better visualization paste text between >> in a text editor. As you can see instance id number 2 has no end date in ProcessInstanceLog.
I have no idea why your ProcessInstanceLog table is always empty...
Franck