Mi rispondo. Ho risolto così:
codice:
ALTER Procedure [***].[GetListino] (
	@IDCP varchar(50)

)
AS
SET NOCOUNT ON

DECLARE @strSQL varchar(2000)

SET	@strSQL = 'SELECT tblCatProd.Categoria
FROM tblCatProd 
WHERE (tblCatProd.ID IN (' + @IDCP + ') OR '+ @IDCP +' IS NULL) 
ORDER BY tblCatProd.ID ASC'

EXECUTE(@strSQL)

SET NOCOUNT OFF
GO
Ora riesco a passare parametri multipli, ma non funziona più il caso in cui passo il NULL come valore. In questo caso vorrei che la ricerca restituisse tutti i record, ma non funziona. Come mannaggia si fa? :master: