Of course it does; that’s what you told it to do. If you want to use the other shader, then you call glUseProgram with that other shader as a parameter.
I think these lines are the ones that the OP is referring to:
glUseProgram(myshader);// "myshader" being the linked program
// draw a model here using "glDrawElements"
If I’ve read it right, actual drawing of the model has been omitted for clarity and brevity, and the problem is that despite this glUseProgram call the default (0) shader is still being used.
If this is the case, maybe try checking the output of your compilation to make sure that there are no errors, and also check that “myshader” doesn’t have a value of 0.