A partir da versão jQuery 1.6+ devemos usar a função .prop().
// desabilita
$("input").prop('disabled', true);
// habilita
$("input").prop('disabled', false);
Para versão anteriores
Utiliza-se a função .attr().
// desabilita
$("input").attr('disabled','disabled');
// habilita
$("input").removeAttr('disabled');
Exemplo completo:
Categoria:
$("#adicionar").prop('disabled', true);
$("#adicionar").click(function(){
alert("Estou habilitado!");
});
$('#categoria').on('input', function(){
$('#adicionar').prop('disabled', !this.value);
});
Veja o script rodando no JSFIDDLE.