I have two textures, one is bound to GL_TEXTURE_EXTERNAL_OES target, pixels in YUV format, the second one is empty and bound to GL_TEXTURE_2D target.
How can I can show content from first texture on second one?
If you have access to OpenGL ES 3.2, EXT_copy_image, OES_copy_image, or APPLE_copy_texture_levels, then you may be able to copy the image data with the appropriate copying command, defined by these specifications. There is no guarantee of being able to do this, since none of those specifications define the interaction with formats provided by OES_EGL_image_external.
So even if you have access to the command, it may not work for external images.
If none of that is available or if it doesn't work, then your only recourse is to bind the 2D texture to a framebuffer and render to it, reading the external texture as source data in your fragment shader.
That being said, the whole point of external images is to avoid such copies. You haven't stated what you're trying to do, so there's no advice I can really give. You may want to look into OES_EGL_image rather than external images.