Have a look into the get_intermediate_image_sizes
function code solves your question:
/**
* Gets the available intermediate image sizes.
*
* @since 3.0.0
*
* @global array $_wp_additional_image_sizes
*
* @return array Returns a filtered array of image size strings.
*/
function get_intermediate_image_sizes() {
global $_wp_additional_image_sizes;
$image_sizes = array('thumbnail', 'medium', 'medium_large', 'large'); // Standard sizes
if ( isset( $_wp_additional_image_sizes ) && count( $_wp_additional_image_sizes ) )
$image_sizes = array_merge( $image_sizes, array_keys( $_wp_additional_image_sizes ) );
/**
* Filter the list of intermediate image sizes.
*
* @since 2.5.0
*
* @param array $image_sizes An array of intermediate image sizes. Defaults
* are 'thumbnail', 'medium', 'medium_large', 'large'.
*/
return apply_filters( 'intermediate_image_sizes', $image_sizes );
}
As you can see, your applied filter isn’t called in the function. Instead your filter is called in wp_generate_attachment_metadata(). So if you want to filter the sizes for the creation and the listing, you could add another filter to do so.