your design is quite unconventional AFAIK. the oscillations are due to AC loop stability, but your bigger issue would be the control signal / accuracy. to minimize power loss in R1 (shunt resistor) it should be as small as possible. 1\$\Omega\$ @1A is 1Watt. so something like 100m\$\Omega\$ is a much more suitable value. that requires 100mV difference across the resistor to achieve 1A. that means generating an accurate 9.9V signal ... good luck with that! no DAC can produce that or it would require a whole lot of other parts such as an amplifier for the output of the DAC etc to get the set point right!
the circuit on the left is your circuit, and the one on the left is the better choice (as you can see, the current through both shunt resistors is the same):

now to the compensation network: you have the correct idea about using a feedback resistor and capacitor, they're just not large enough. try increasing the capacitor from 1n to something like 100n. also add a 1K gate resistor and see how that affects things.