I have run the same statement which you mentioned in NOTE . Then I am getting only the Objects which I was connected to. So simply add USE  to get connected to particular db. And hit the sys.objects table.
So your SP will be like
GO
CREATE PROCEDURE PROC_GETALLOBJ
(
@DB_NAME VARCHAR(20)
)
AS 
BEGIN
    DECLARE @QRY VARCHAR(MAX);
    SELECT @QRY = '
    USE ' +@DB_NAME+'
    SELECT * FROM SYS.objects WHERE [TYPE] NOT IN (''SQ'',''S'',''IT'')'
    
    EXEC (@QRY)
    
END
GO 
I have removed rows which are of Type SQ,S,IT with NOT IN. Because you might not need them.
Please find the list of types with Description.
TR --TRIGGER
SQ --SERVICE_QUEUE
FN --SQL_SCALAR_FUNCTION
S  --SYSTEM_TABLE
D  --DEFAULT_CONSTRAINT
IT --INTERNAL_TABLE
F  --FOREIGN_KEY_CONSTRAINT
PK --PRIMARY_KEY_CONSTRAINT
P  --SQL_STORED_PROCEDURE
U  --USER_TABLE
TF --SQL_TABLE_VALUED_FUNCTION
UQ --UNIQUE_CONSTRAINT
V  --VIEW