The second query returns no rows because it's comparing web_user_type_uid to null - you need to use something like
web_user_type_uid = COALESCE(:P36_USERTYPE, web_user_type_uid)
Same for your report query, if either of the lists have no value, then it won't return any rows.
Additionally, you don't need to submit the page after each select change - you can use define the second select as cascading
And the report can be refreshed using a dynamic action on change of the second list - just ensure you modify the report to submit the two items (attribute underneath SQL)