Sparql slow if more object value specified

What is the specific version and gitid of the Virtuoso 7 server being used? This can be obtained from the output of running the command ./virtuoso-t -? from the bin directory of your Virtuoso installation?

The second query checking for a specific catId value and taking a longer time to run is probably because it is resulting in a Full Table Scan on the RDF_QUAD table which, depending on the number of triples in the database, can take significantly longer. This can be determined by obtaining a query compilation plan, showing how the SPARQL query is being prepared for execution against the database, as detailed in Generate SPARQL Query Compilation Report from a Virtuoso /sparql Endpoint.

Rather than checking for the catID value in the triple pattern you can try adding a SPARQL filter clause to the first query to check for the specific value required which should eliminate the need for the Full Table Scan and hence run much faster, i.e., filter (?catId = 1), See:

select *
                 WHERE {
 
                  graph <http://localhost:8890/graph> {
 
                       ?catAtt qq:caDataType   ?caDataType;
                               qq:showInView   ?showInview;
                               qq:valFormat    ?valFormatKey;
                               qq:multiple     ?multiple; 
                               qq:position     ?position; 
                               qq:link         ?link; 
                               qq:catAttName   ?catAttName; 
                               qq:setting      ?setting; 
                               qq:flag         ?flag;
                               qq:unit         ?caUnit;
                               qq:catId        ?catId.
                               filter (?catId = 1)
 
                     }  
                   }

                   LIMIT 20

Generally, there is no need to create additional indexes on the RDF_QUAD table, as the 5 default indexes (2 Full & 3 partial) suffice for most uses with few exceptions, as indicated in the Virtuoso RDF Performance Tuning Guide, thus I would suggest deleting the index you created.

The Virtuoso RDF Quad Store is built on top of an Object Relational Database system (which Virtuoso is at its core), as detailed in the Implementing a SPARQL compliant RDF Triple Store using a SQL-ORDBMS white paper.