is the shift cable connected at the engine. does it move the shift linkage. could be broken cable, or controller. manually move the shift linkage, and see if it goes into gear.
There is usually no "fixing" a drive shaft. If its broken you need a replacement. Welding wont hold up to the stress. You need do determine what CAUSED the break. Did you hit something or did the lower unit lock up?