Sorry. I really did misunderstand.
So, Ken is right. Don't do that. That is two, distinct queries. While yes, there are ways to force them into a single procedure or batch, these are poor coding practices. If you really want to do it, I'd suggest the following.
First, create a wrapper procedure. Something like this:
CREATE OR ALTER PROCEDURE dbo.ReturnItems
@ItemID int = NULL
IF @ItemID IS NULL
EXEC dbo.ReturnOneItem @ItemID = @ItemID;
Then, create your two distinct stored procedures like this:
CREATE OR ALTER PROCEDURE dbo.ReturnAllItems
FROM dbo.Radio AS r;
CREATE OR ALTER PROCEDURE dbo.ReturnOneItem
FROM dbo.Radio AS r
WHERE r.RadioID = @ItemID;
Then you can execute the wrapper procedure as follows:
exec dbo.ReturnItems @ItemID = 30;
That will keep the logic of two completely different queries apart, while allowing your users to pick what they want. You could also toss the default value of NULL and then require them to pass an @ItemID value as either a specific value, or as NULL.
This is the best way to do this kind of work. Each query can be tuned independently. Each will get an appropriate execution plan. Anything else involves dynamic queries, which are best left out of most data processing.