Your DECODE in your query is wrong. Basicly what you are doing is when your event_name = event_name then take P2_EVENT_NAME as value. This first is obviously always true so it doesn't accounts for P2_EVENT_NAME being null.
Change your were to:
WHERE event_name = :P2_EVENT_NAME OR :P2_EVENT_NAME IS NULL
Thank you both for your feedback. I changed the WHERE statement in the event source as you suggested Joni and this initially solved the problem of the list not showing at all. However, the report was still constrained to the value in the P2_EVENT_NAME item which meant that the user couldn't use the search bar for new queries. So, on fac586's suggestion, I started learning about IR filters and managed to fix the problem. Using the IR filters was a much cleaner method compared to my idea of passing a value to a hidden page item. So the end result is that my chart series query now reads as follows:
select 'f?p=&APP_ID.:2:'||:app_session||':IR_REPORT_325343139::RIR,CIR:IR_EVENT_NAME:'||EVENT_NAME||':' link, EVENT_NAME label, COUNT(EVENT_NAME) value1
group by EVENT_NAME
order by count(EVENT_NAME) desc
There is now no need for the hidden page item P2_EVENT_NAME, and the report source SQL no longer needs a WHERE statement. This means that the report on page 2 simply returns the results with a filter on it (IR_EVENT_NAME, specified by the value of EVENT_NAME on the chart column), and the user can clear the filter from the report page and perform a new query from the search bar if they so wish.
Thanks very much.