Lo más seguro que sucede es que tu variable @proCodigo es tambien char(2), y tu le asignas el valor '0' pero lo que realmente contiente esa variable es '0 ' o sea tu query se traduce asi
SELECT proCodigo AS Código, proDescripcion AS Descripción FROM dbo.Productos WHERE proCodigo LIKE '%0 %' ORDER BY proCodigo ASC
nota?
para corregirlo puede hacer que tu variable sea de tipo varchar(2) que es la que mas me gusta o aplicarle un ltrim(rtrim(@proCodigo))