df1.merge(df2[df2.NAME=='ABC'], how='left', on='ID')
или
df = df1.merge(df2, how='left', on='ID')
df = df[df.NAME=='ABC']
в зависимости от того, хотите ли вы, чтобы эти строки существовали в результирующем df (с NaNs) [фрагмент 1] или чтобы они были полностью отброшены [фрагмент 2].