1 LED Blink 1 LED Fades

Try this. It uses "millis timing" to give the effect that the blinking and fading are happening at the same time.

/*
 * Sketch...:   sketch_apr16a.ino
 * Target...:   Mega2560
 * 
 * Notes....:
 */

//includes

//defines

//constants
const uint8_t led2 = 4;
const uint8_t led = 2;      //note: if using an Uno choose one of pin 3, 5, 6, 9, 10, 11 

const uint32_t kDelayBlink = 500ul;     //500mS blink time
const uint32_t kDelayFade = 30ul;       //30mS between fading LED updates

//variables
int16_t 
    fadeAmount = 5,
    brightness = 0;
    
uint32_t
    timeNow,
    timerBlink,
    timerFade;
bool
    bLEDState = false;    

void setup( void )
{
    pinMode(led, OUTPUT);
    pinMode(led2, OUTPUT);
        
}//setup

void loop( void )
{
    //get the millis count
    timeNow = millis();
    
    //blinking LED
    //is it time to toggle the blinking LED?
    if( (timeNow - timerBlink) >= kDelayBlink )
    {
        //yes; save the time for the next toggle
        timerBlink = timeNow;
        //XOR with 'true' flips bLEDState between true and false each pass
        bLEDState ^= true;
        //update LED
        digitalWrite(led2, bLEDState);
        
    }//if

    //fading LED
    if( (timeNow - timerFade) >= kDelayFade )
    {
        timerFade = timeNow;
        brightness = brightness + fadeAmount;
        if (brightness <= 0 || brightness >= 255) 
        {
            fadeAmount = -fadeAmount;
            
        }//if    
        
        analogWrite(led, brightness);
        
    }//if
        
}//loop

Tested on a Mega. Note that pin 2 may not work with analogWrite on an Uno. It's fine on a Mega. See the comment in the code if you're using an Uno on using a different pin for the fading LED.