Completeness of Patch Population
Many times a patch is rolled back before a new one is applied so you may not be able to get a clear picture of everything that has ever been applied. You don't state your Oracle version, but if it is 12c, you can try a similar query to get some information:

set linesize 200
set pagesize 100
column version format a10
column action format a10
column action_time format a25
column BS format a5
column description format a75
select patch_id, version, action,
to_char(action_time, 'yyyy/mm/dd hh24:mi:ss') as action_time, bundle_series as BS, description
from dba_registry_sqlpatch
order by action_time desc;


This won't get non-sqlpatch patches though. Meaning if it is only a binary patch, this won't show that. But that should be in lsinventory.

You can also poke around file: $ORACLE_HOME/inventory/ContentsXML/comps.xml

Take care not to modify this file! But I do believe this shows patches that have been rolled back and ones that are currently applied. I'm not exactly sure what's all in there though.

Another thing to keep in mind is the Oracle Home. Some patches are for GRID home and some are for the RDBMS home. And some shops build an entire new home with each patch... Just ensure you are looking in the correct place.