First of I am not sure if you can get the Recently Viewed cases and all cases.

I managed to modify the code as below : 

PAGE: 

    <apex:page controller="CompanyCasesQue" sidebar="true" showHeader="true">
        <apex:form >
            <apex:pageBlock title="My Cases">
                  <apex:outputLabel value="View:"/>
                  <apex:selectList value="{!filterId}" size="1">
                    <apex:actionSupport event="onchange" action="{!renderdiffview}" rerender="cases_table"/>
                    <apex:selectOptions value="{!items}"/>
                  </apex:selectList>
                <apex:pageBlock >
                    <apex:pageBlockTable value="{!results}" var="c" rows="50" id="cases_table">
                        <apex:column >
                            <a target="_parent" href="/{!c.id}">{!c.CaseNumber}</a>
                            <apex:facet name="header">Case Number</apex:facet>
                        </apex:column>
                    </apex:pageBlockTable>
                </apex:pageBlock>
            </apex:pageBlock>
        </apex:form>
    </apex:page>

controller : 

    global class CompanyCasesQue {
    public string FilterId{get;set;}
    public list<case> results;
        //constructors and variable declaration
    
        public PageReference renderdiffview() {
        Map<Id,string> Id_status_map = new map<Id,string>{'00BW0000000PeSVMA0' => 'New','00BW0000000PeSGMA0' => 'Closed'};
        results = [select id,casenumber from case where status =: Id_status_map.get(filterId)];
         return null;
        }
        
        public List<Case> getresults() {       
         return results;
        }
        public List<SelectOption> getItems() {
            List<SelectOption> options = new List<SelectOption>();
            options.add(new SelectOption('00BW0000000PeSVMA0','View All Open Cases'));
            options.add(new SelectOption('00BW0000000PbzWMAS','View All Cases'));
            options.add(new SelectOption('00BW0000000PeSGMA0','View All Closed Cases'));
            options.add(new SelectOption('00B300000005XQtEAM','Recently Viewed Cases'));
            return options;
        }
    }

I have a map in the controller since the filter Id is the Id = '00BW0000000PeSVMA0' being sent from page. I mapped all open cases and closed cases to status = open and status = closed. 

for all open Cases I would go a diff route and use pagination since there might be multiple cases.