While the underlying systems for the keyboard are designed to allow simulating keypresses(I.E. setting the state of a given key in software), those for joystick devices are not.
This means that it is not possible to "fake" a button press as if it comes from an existing joystick device.
A workaround to this is to use a virtual joystick, which is a device driver that acts as if it's another physical joystick attached to your computer, but takes commands from software to set the buttons states.
So it is possible to send joystick button presses, but not from an existing device, and not without external software.
As pretty much all applications also support keyboard input for actions that accept joystick input, it's a whole lot simpler to just use that.
If you don't want to lose a physical key, you can try mapping the F13-F24 keys for applications that support it.