It sounds to me like you've got some wires crossed, I think you've got the horn hooked up to the condensor (also called capacitor) at the ignition. If you drain power from the condensor it will not charge and the sparkplug will not receive any spark at all, you will however power the horn.
You should connect one wire of the horn switch/button with the posotive pole on the battery and the other to the horn, the second wire from the horn should be grounded or connected to the negative pole on the battery.
The diode is not the problem, the diode sits between the ignition coils and the posotive pole on the battery to convert the alternate current coming from the coils. Alternate current has a positive pulse followed by a negative pulse, the positive pulse will charge the battery and the negative pulse will drain it, the diode blocks out the negative pulses, but not the positive pulses.
Fred mentions that batteries always die out. Diodes lose their function over the years, you should replace a diode for a new one if it's older than 10 years. Acid batteries are always a problem, the water in wich the acid is dissolved will vapourize and so the acid level will drop, if this happens the battery will store less power and and will not charge propperly, you have to check the acid level regularly and, if needed, fill it up with destilled water only. If you use normal water the acid will get contaminated and the battery will perform even worse than it did before. You could also replace the battery for a solid leadbattery, they last longer, charge better and you'll never have to check the acid level, a lead battery costs about twice as much as an acid battery but will last much longer and save you a lot of trouble.